package com.ntschy.sys.service;

import com.ntschy.common.core.entity.dataobject.SysDictData;
import com.ntschy.common.core.entity.dataobject.SysDictType;

import java.util.List;

public interface ISysDictTypeService {

    // * ================================================基础增删改查BEGIN============================================= *

    /**
     * 分页查询字典类型
     * 当前查询条件：字典名称 ｜ 字典类型
     * @param dictType 字典类型对象
     * @return 字典类型对象列表
     */
    List<SysDictType> pageDictType(SysDictType dictType);

    /**
     * 新增字典类型
     * @param dictType
     * @return
     */
    int addDictType(SysDictType dictType);

    /**
     * 根据ID更新字典类型
     * @param dictType 字典类型对象
     * @return 更新结果
     */
    int updateDictType(SysDictType dictType);

    /**
     * 根据ID删除字典类型
     * @param dictId 字典类型
     * @return 删除结果
     */
    int deleteDictType(String dictId);
    // * =================================================基础增删改查END============================================== *

    /**
     * 根据字典类型获取字典数据
     * @param dictType 字典类型
     * @return 前端页面下拉用
     */
    List<SysDictData> listDictDataByDictType(String dictType);

    /**
     * 清空缓存
     */
    void clearCache();

    /**
     * 校验字典名称是否存在
     * @param dictName 字典名称
     * @return 校验结果
     */
    boolean checkExistDictName(String dictName);

    /**
     * 校验字典类型是否存在
     * @param dictType 字典类型
     * @return 校验结果
     */
    boolean checkExistDictType(String dictType);

    /**
     * 校验字典类型是否系统内置
     * @param dictId 字典类型id
     * @return 校验结果
     */
    boolean checkDictTypeIsSystem(String dictId);

    /**
     * 校验字典类型是否存在字典数据
     * @param dictId 字典类型id
     * @return 校验结果
     */
    boolean checkExistDictData(String dictId);
}
